package com.fenqile.pop.product.param;

import com.fenqile.pop.BusinessParameter;
import com.fenqile.pop.enums.DeliveryPeriodKind;
import com.fenqile.pop.product.result.SkuModifyResult;

/**
 * 添加 sku {@value #API_METHOD}
 * 
 * @see SkuModifyResult
 * 
 * @author Coby [cobylin@live.com] 2017
 */
public class SkuAddParameter extends BusinessParameter<SkuModifyResult> {
	public static final String API_METHOD = "fenqile.sku.add";
	
	/**
	 * 商品id
	 * 必须
	 */
	public String product_id;
  
	/**
	 * 货号(外部 sku 编码)
	 * 最大32字节
	 * 必须
	 */
	public String third_sku_id;
	
	/**
	 * 分仓属性  如果值 0， 则 分仓策略为一 仓发全国，若为 1 则为区域分 仓
	 * 必须
	 */
	public Integer sku_property;
	
	/**
	 * sku库存, 如果 sku_property 为1，且区域分 仓库存之和必 须等于 sku_num
	 * 必须
	 */
	public Integer sku_num;
	
	/**
	 * 如果 sku_property 为 1 则此属性 必填，且分库存 之和必须等于 sku_num
	 * sku_num= 分仓库存1 +分 仓库存2 +…
	 * (格式：分仓区域Id： 分仓库存 1|分仓区域 Id：分仓库存2…)
	 */
	public String wareroom_list;
	
	/**
	 * sku售价，单位 元，小数点最多 保留2位，
	 * 若所属 spu 不是自 定义售价，sku 自动拉取 spu 的定价策略，且 设定 amount 无效，
	 * 具体参见 fenqile.produ ct.update\fen qile.product.a dd\fenqile.pr oduct.update. price。
	 * 必须
	 */
	public Float amount;
	
	
	/**
	 * sku原价，单位 元，小数点最多 保留2位。
	 * 若所 属 spu 不是自 定义售价，sku 自动拉取 spu 的定价策略，且 新 设定值 mart_amount 无效，
	 * 具体参见 fenqile.produ ct.update\fen qile.product.a dd\fenqile.pr oduct.update. price。
	 * 必须
	 */
	public Float smart_amount;
	
	/**
	 * sku 可发货时 间。
	 * 必须
	 */
	public DeliveryPeriodKind delivery_time;
	
	/**
	 * 销售属性至少 一个，其属性值 至少一个，每个 属性值的附加 信息只支持一 种，即图片上传 相对地址(图片 上传) sku销售属性。
	 * 格式 key1:value1# extra1|key2:v alue2|..., 其中 key为属性id， 若一个值有附 加信息, 使用# 分隔。
	 * 属性id等 信息使用销售 属性接口 fenqile.sku.fe ature.get获取
	 * 必须
	 */
	public String feature;       
	
	@Override
	public String getApiMethod() {
		return API_METHOD;
	}

}
